// 小红狐 API 函数 IIFE（立即调用函数表达式）
(function (全局对象) {
    let api前缀 = "/api";
    let 请求 = 小红狐工具.请求

    let 页面 = {
        api前缀: api前缀 + "/页面",
        获取页面名: function() {
            return 请求.获取(this.api前缀 + "/页面名");
        },
        新增页面名: function(页面名) {
            return 请求.新增(this.api前缀 + "/页面名", 页面名);
        },
        获取标签页列表: function(页面名="页面名六个字") {
            return 请求.获取(this.api前缀 + `/标签页列表/${页面名}`);
        },
        获取页面操作开启脚本: function(页面名="页面名六个字") {
            return 请求.获取(this.api前缀 + `/页面操作开启脚本/${页面名}`);
        },
        获取页面操作自动开启脚本: function(页面名="页面名六个字") {
            return 请求.获取(this.api前缀 + `/页面操作自动开启脚本/${页面名}`);
        },
        添加页面操作自动开启脚本: function(页面名, 脚本模块名, 页面操作脚本名) {
            return 请求.新增(
                this.api前缀 + `/页面操作自动开启脚本/${页面名}`,
                {
                    "脚本模块名": 脚本模块名,
                    "页面操作脚本名": 页面操作脚本名,
                }
            );
        },
        删除页面操作自动开启脚本: function(页面名, 脚本模块名, 页面操作脚本名) {
            return 请求.删除(this.api前缀 + `/页面操作自动开启脚本/${页面名}/${脚本模块名}/${页面操作脚本名}`);
        },
        获取页面操作配置页面: function(页面名, 脚本模块名, 页面操作脚本名) {
            return 请求.获取(this.api前缀 + `/页面操作/配置页面/${页面名}/${脚本模块名}/${页面操作脚本名}`);
        },
        获取页面生成配置页面: function(页面名, 脚本模块名, 页面操作脚本名) {
            return 请求.获取(this.api前缀 + `/页面生成/配置页面/${页面名}/${脚本模块名}/${页面操作脚本名}`);
        },
        修改标签页URL排序: function(页面名="页面名六个字", 标签页URL排序) {
            return 请求.修改(this.api前缀 + `/标签页URL排序/${页面名}`, 标签页URL排序);
        },
        获取页面配置名: function(页面名="页面名六个字") {
            return 请求.获取(this.api前缀 + `/配置名/${页面名}`);
        },
        修改页面配置名: function(页面名="页面名六个字", 配置名) {
            return 请求.修改(this.api前缀 + `/配置名/${页面名}`, 配置名);
        },
        获取页面生成脚本: function(页面名="页面名六个字") {
            return 请求.获取(this.api前缀 + `/页面生成脚本/${页面名}`);
        },
        修改页面生成脚本: function(页面名, 脚本模块名, 页面生成脚本名) {
            return 请求.修改(
                this.api前缀 + `/页面生成脚本/${页面名}`,
                {
                    "脚本模块名": 脚本模块名,
                    "页面生成脚本名": 页面生成脚本名,
                }
            );
        },
        开启页面操作脚本: function(页面名, 脚本模块名, 页面操作脚本名) {
            return 请求.获取(this.api前缀 + `/开启页面操作脚本/${页面名}/${脚本模块名}/${页面操作脚本名}`);
        },
        开启页面操作自动开启脚本: function(页面名) {
            return 请求.获取(this.api前缀 + `/开启页面操作自动开启脚本/${页面名}`);
        },
        关闭页面操作脚本: function(页面名, 脚本模块名, 页面操作脚本名) {
            return 请求.获取(this.api前缀 + `/关闭页面操作脚本/${页面名}/${脚本模块名}/${页面操作脚本名}`);
        },
        关闭页面操作自动开启脚本: function(页面名) {
            return 请求.获取(this.api前缀 + `/关闭页面操作自动开启脚本/${页面名}`);
        },
        新建页面: function(页面名) {
            return 请求.获取(this.api前缀 + `/新建页面/${页面名}`);
        },
        关闭页面: function(页面名) {
            return 请求.获取(this.api前缀 + `/关闭页面/${页面名}`);
        },
        获取页面状态: function(页面名="页面名六个字") {
            return 请求.获取(this.api前缀 + `/获取页面状态/${页面名}`);
        },
        获取页面账号名: function(页面名="页面名六个字") {
            return 请求.获取(this.api前缀 + `/账号名/${页面名}`);
        },
        修改页面账号名: function(页面名, 账号名) {
            return 请求.修改(this.api前缀 + `/账号名/${页面名}`, 账号名);
        },
        获取页面初始URL: function(页面名="页面名六个字") {
            return 请求.获取(this.api前缀 + `/页面初始URL/${页面名}`);
        },
        修改页面初始URL: function(页面名, 页面初始URL) {
            return 请求.修改(this.api前缀 + `/页面初始URL/${页面名}`, 页面初始URL);
        },
    };

    let 脚本 = {
        api前缀: api前缀 + "/脚本",
        获取导入脚本信息字典: function() {
            return 请求.获取(this.api前缀 + "/导入脚本信息字典");
        },
    }

    let 账号 = {
        api前缀: api前缀 + "/账号",
        获取全部账号名: function() {
            return 请求.获取(this.api前缀 + "/账号名");
        },
        新建账号: function(账号名) {
            return 请求.新增(this.api前缀 + "/账号名", 账号名);
        },
        保存账号状态: function(账号名) {
            return 请求.获取(this.api前缀 + `/保存账号状态/${账号名}`);
        },
    };

    let 总控 = {
        api前缀: api前缀 + "/总控",
        获取标签页列表: function() {
            return 请求.获取(this.api前缀 + "/标签页列表");
        },
        修改标签页URL排序: function(标签页URL排序) {
            return 请求.修改(this.api前缀 + "/标签页URL排序", 标签页URL排序);
        },
    };

    // 对外暴露的 小红狐 方法
    const 小红狐 = {
        页面: 页面,
        脚本: 脚本,
        账号: 账号,
        总控: 总控,
    };

    // 将 小红狐 挂载到全局对象上（比如 window），这样外部可直接使用
    if (typeof 全局对象 !== 'undefined') {
        全局对象.小红狐 = 小红狐;
    }

})(typeof window !== 'undefined' ? window : this);
